﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class User_ShoppingCart : System.Web.UI.Page
{
    public String url_checkout = "https://www.nganluong.vn/advance_payment.php";
    private int mahd=0;
    private decimal tongtien=0;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            MultiView1.ActiveViewIndex = 0;
            // kiem tra gio hang co null hay ko
            if (Session["ShoppingCartD"] == null)
            {
                lbThongTin.Text = "KHÔNG CÓ SẢN PHẨM NÀO TRONG GIỎ HÀNG!";
                return;
            }
            LoadGioHang();
            //Ngay giao hang:Nowdate + 10ngay!
            lbNgayGiaoHang.Text = DateTime.Now.AddDays(10).ToShortDateString();
            Label4.Visible = false;
            lbGiamGia.Visible = false;
            lbVNDGiamGia.Visible = false;
            
        }
    }

    private void LoadGioHang()
    {
        if (Session["ShoppingCartD"] == null)
        {
            lbThongTin.Text = "KHÔNG CÓ SẢN PHẨM NÀO TRONG GIỎ HÀNG!";
            btnTiepTuc.Visible = false;
            return;
        }

        ShoppingCart shoppingCart = (ShoppingCart)Session["ShoppingCartD"];
        gvGioHang.DataSource = shoppingCart;
        gvGioHang.DataBind();

        if (shoppingCart.SoSP <= 0)
        {
            lbThongTin.Text = "KHÔNG CÓ SẢN PHẨM NÀO TRONG GIỎ HÀNG!";
            btnTiepTuc.Visible = false;
            return;
        }
        //Khong tinh giam gia o day! vi cho kh mua thoai mai.
        

            lbSoTien.Text = shoppingCart.SoTien.ToString();
            lbGiamGia.Text = shoppingCart.GiamGia.ToString();

            lbTongTien.Text = shoppingCart.TongTien.ToString();
            lbThongTin.Text = "THÔNG TIN GIỎ HÀNG";
        
    }

    protected void ImgCapNhat_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            SanPhamCtr SanPhamCtr = new SanPhamCtr();
            ShoppingCart Cart = (ShoppingCart)Session["ShoppingCartD"];
            ImageButton btn = (ImageButton)sender;
            string masp = btn.CommandArgument;
            int soluongdb = SanPhamCtr.GetSanPham(masp).SoLuong;
           
            foreach (GridViewRow r in gvGioHang.Rows)
            {
                HiddenField hdfield = (HiddenField)r.Cells[4].FindControl("HiddenField1");
                if (hdfield.Value == masp)
                {

                    TextBox tb = (TextBox)r.Cells[0].FindControl("txtSoLuong");
                    double Num;
                    try
                    {
                        if (double.TryParse(tb.Text.Trim(), out Num) && int.Parse(tb.Text) > 0)
                        {
                            Cart.capnhat(masp, Int32.Parse(tb.Text), soluongdb);
                            Session["ShoppingCartD"] = Cart;
                            Response.Redirect(Request.RawUrl);
                        }
                        else
                        {
                            
                            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                     "alert('Bạn phải nhập số lượng lớn hơn 0!');", true);
                            tb.Focus();
                        }
                    }
                    catch
                    {
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                     "alert('Số lượng nhập vượt quá số lượng hiện có của sản phẩm!');", true);
                        tb.Focus();
                    }
                }
            }
            
            LoadGioHang();
            
        }
        catch
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                 "alert('Cập nhật không thành công!');", true);
            
        }
       
    }

    protected void btnDel_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            ShoppingCart Cart = (ShoppingCart)Session["ShoppingCartD"];
            ImageButton btn = (ImageButton)sender;
            string masp = btn.CommandArgument;
            Cart.Xoa(masp);
            Session["ShoppingCartD"] = Cart;
            LoadGioHang();
            Response.Redirect(Request.RawUrl);
        }
        catch
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                 "alert('Xoá không thành công!');", true);
        }//show error message
    }
    protected void btnTiepTuc_Click(object sender, EventArgs e)
    {
        //Load Trang Hien Thi Thong Tin De Thanh Toan
        if (Session["UserIDU"] != null)
        {
            MultiView1.ActiveViewIndex = 1;
            ShoppingCart shoppingCart = (ShoppingCart)Session["ShoppingCartD"];
            gvGioHang.DataSource = shoppingCart;
            gvGioHang.DataBind();
            //TaiKhoan trog shopping card:
            shoppingCart.TaiKhoan = Session["UserIDU"].ToString();
            
            lbTongTien.Text = shoppingCart.TongTien.ToString();
            lbGiamGia.Text = shoppingCart.GiamGia.ToString();
            lbSoTien.Text = shoppingCart.SoTien.ToString();
            lbThongTin.Text = "THÔNG TIN GIỎ HÀNG";
            ThanhVienCtr ThanhVienCtr = new ThanhVienCtr();
            EThanhVien thanhVien = ThanhVienCtr.GetThanhVien(Session["UserIDU"].ToString());
            txtKhachHang.Text = thanhVien.TenKH;
            txtDiaChiKH.Text = thanhVien.DiaChi;
            txtSoDTKH.Text = thanhVien.DienThoai;
            //hpKhachHang duoc khai bao o day!Qua nut Finish dc use lai:
            hpKhachHang.Value = thanhVien.TenDangNhap;
            btnTiepTuc.Visible = false;
            btnQuayLai.Visible = true;
            btnFinish.Visible = true;
            btnTTMua.Visible = false;

            Label4.Visible = true;
            lbGiamGia.Visible = true;
            lbVNDGiamGia.Visible = true;
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                 "alert('Vui lòng đăng nhập để thanh toán giỏ hàng!');", true);
            ScriptManager.RegisterStartupScript(this, this.GetType(),"",
                 "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'", true);
        }
        
    }
    protected void btnFinish_Click(object sender, EventArgs e)
    {
        //Muc dich:Add vao DonDatHang va CTDonDatHang
        DonDatHangCtr donDatHangCtr = new DonDatHangCtr();
        EDonDatHang edonDatHang = new EDonDatHang();
        if (cboDiaChiNhan.SelectedIndex == 1)
        {
            //Nguoi nhan hang k la Khachhang mua
            edonDatHang.NguoiNhan = txtTenNN.Text;
            edonDatHang.DiaChiGiaoHang = txtDiaChiNN.Text;
            edonDatHang.DienThoaiNN = txtSoDTNN.Text;
        }
        else
        {
            //Nguoi nhan hang là KhachHang mua
            edonDatHang.NguoiNhan = txtKhachHang.Text;
            edonDatHang.DiaChiGiaoHang = txtDiaChiKH.Text;
            edonDatHang.DienThoaiNN = txtSoDTKH.Text;
        }
        edonDatHang.HinhThucTT = cboHinhThuc.SelectedIndex.ToString();
        edonDatHang.HinhThucGH = cboHinhThucGH.SelectedIndex.ToString();
        edonDatHang.KhachHang = hpKhachHang.Value;
        edonDatHang.NgayGiaoHang = DateTime.Parse(lbNgayGiaoHang.Text);
        edonDatHang.NgayLap = DateTime.Now;
        edonDatHang.TrangThai = 0;
        //khuc sai day!
        edonDatHang.SoTien= double.Parse(lbSoTien.Text);
        edonDatHang.GiamGia = double.Parse(lbGiamGia.Text);
        edonDatHang.TongTien = lbTongTien.Text;
        edonDatHang.HinhThucTT = cboHinhThuc.SelectedIndex.ToString();
        List<EDonDatHangCT> listDDHCT = new List<EDonDatHangCT>();
        ShoppingCart Cart = (ShoppingCart)Session["ShoppingCartD"];
        foreach (DataRow r in Cart.Rows)
        {
            EDonDatHangCT ddhCT = new EDonDatHangCT();
            ddhCT.MaSP = r["MaSP"].ToString();
            ddhCT.Gia = (r["Gia"].ToString());
            ddhCT.SoLuong = Int32.Parse(r["SoLuong"].ToString());
            ddhCT.ThanhTien = (r["ThanhTien"].ToString());
            listDDHCT.Add(ddhCT);

        }
        if (cboHinhThuc.SelectedIndex == 0)
            {
                try
                {
                    donDatHangCtr.AddDonDatHang(edonDatHang, listDDHCT);
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                        "alert('Thực hiện thành công, vui lòng chờ email xác nhận của chúng tôi!');", true);
                    Session["ShoppingCartD"] = new ShoppingCart();
                    Response.Redirect("Thanks.aspx");
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                         "alert('Thanh toán không thành công!');", true);
                }
            }
        else
        {
            try
            {
                mahd=donDatHangCtr.AddDonDatHangH(edonDatHang, listDDHCT);
                Session["mahd"] = mahd;
                EDonDatHang donDatHang = donDatHangCtr.GetDonDatHang(mahd);
                tongtien = decimal.Parse(donDatHang.TongTien) - decimal.Parse(donDatHang.GiamGia.ToString());
                Session["tongtien"] = tongtien;
                Session["ShoppingCartD"] = new ShoppingCart();
                // DonDatHangCtr donDatHangCtr = new DonDatHangCtr();
                ShoppingCart shoppingCart = (ShoppingCart)Session["ShoppingCartD"];
                //Hanh:
                String receiver = "service.thegioicuabe@gmail.com";
                String comments = "Thế giới của bé!";
                String return_url = "https://nganluong.vn/";
                String price = "";
                String product = "";
                if (Session["tongtien"] != null && Session["mahd"] != null)
                {
                    price = Session["tongtien"].ToString();
                    product = Session["mahd"].ToString();
                    //Session["tongtien"] = null;
                    //Session["mahd"] = null;
                }
                else if (Session["tongtien"] == null && Session["mahd"] == null)
                {
                    price = "0";
                    product = "Không có sản phẩm nào";
                }
                this.url_checkout += "?receiver=" + receiver + "&comments=" + comments + "&return_url=" + return_url + "&product=" + product + "&price=" + price;
                // btnFinish.PostBackUrl = this.url_checkout;
                Response.Redirect(this.url_checkout);
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
                     "alert('Thanh toán không thành công!');", true);
                cboHinhThuc.SelectedIndex = 0;
                return;
            }
            //ScriptManager.RegisterStartupScript(this, this.GetType(), "alert",
            //         "alert('Vui lòng chọn hình thức thanh toán chuyển khoản và nhấn nút Thanh toán để thanh toán trực tuyến!');", true);
            //cboHinhThuc.SelectedIndex = 0;
        }
    }
    protected void btnQuayLai_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 0;
        btnQuayLai.Visible = false;
        btnFinish.Visible = false;
        btnTiepTuc.Visible = true;
        btnTTMua.Visible = true;

        Label4.Visible = false;
        lbGiamGia.Visible = false;
        lbVNDGiamGia.Visible = false;
    }
    protected void btnTTMua_Click(object sender, EventArgs e)
    {
        Response.Redirect("Home.aspx");
    }
    protected void txtSoLuong_TextChanged(object sender, EventArgs e)
    {

    }
    
}